<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
    /*对事件循环的理解 
    javascript是一门单线程语言，意味着同一时间只能做一件事，单线程会阻塞解决阻塞的办法就是事件循环
        JavaScript中任务可以分为同步任务和异步任务同步任务进入主线程立即执行，异步任务进入任务队列
        异步任务又分为微任务和宏任务主线程执行完执行任务队列里的任务，流程是  同步任务->微任务->宏任务
        常见的宏任务有定时器、ajax 常见的微任务有peomise
        
    // 函数节流和函数防抖
        /***
         *两者都是优化代码执行频率 
          定义：节流是n秒内只执行一次 n秒内重复触发只执行一次  防抖是n秒后在执行 重复触发事件时 n秒后在执行
          相同点：都是可以用定时器来实现的 主要目的就是降低执行率 节省计算资源
          不同点：函数防抖是连续操作任务结束后处理回调，利用定时器来执行 函数节流是一段时间连续触发任务是只执行最后一次
          应用场景：防抖 搜索框搜索时的搜索事件 节流滚动加载，加载更多或到底部监听
         */
        // 什么是事件代理 应用场景
        /*
            事件代理就是把一个元素的响应事件的函数委托给另一个元素  
            事件委托就是把一个或者一组元素的事件委托给他的父级元素或者更外层元素
            真正绑定事件的并不是目标元素
            应用场景
                
        */
</script>